home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagn_r.zip / RECORDS.SWG / 0007_VARIANT.PAS.pas < prev    next >
Pascal/Delphi Source File  |  1993-05-28  |  2KB  |  69 lines

  1. {* Program that works!
  2. ** Shows use of Variant Records.
  3. ** roleplaying Type implemented.
  4. *}
  5. Uses Crt;
  6. Type
  7.   CharType = (Warrior, Wizard);
  8.   CharacterType = Record
  9.                     Name: String[16];
  10.                     Health, MaxHealth: Integer;
  11.                     Char: CharType;
  12.                     Case CharType of
  13.                       Warrior: ( DamagetoHit: Integer);
  14.                       Wizard : ( Spell, MaxSpell: Integer);
  15.                   end;
  16.  
  17. Var
  18.   Character: CharacterType;
  19.   S: String;
  20.  
  21. begin
  22.  
  23.   { select Character Type }
  24.   Writeln;
  25.   Writeln('Select Character Type:');
  26.   Writeln(' [ 1 ] Warrior');
  27.   Writeln(' [ 2 ] Wizard');
  28.   Readln(S);
  29.  
  30.   With Character do
  31.    begin
  32.      if S = '1' then Character.Char := Warrior else
  33.        Character.Char := Wizard;
  34.  
  35.      { set fixed Variables }
  36.      Write('Enter Character name: ');
  37.      Readln(Name);
  38.      Write('Enter Character health value: ');
  39.      Readln(MaxHealth);
  40.      Health := MaxHealth;
  41.      { set Variant Variables }
  42.      Case Char of
  43.        Warrior: begin
  44.                   Write('Enter ', Name, '''s hit value: ');
  45.                   Readln(Character.DamagetoHit);
  46.                 end;
  47.        Wizard:  begin
  48.                   Write('Enter ', Name, '''s spell value: ');
  49.                   Readln(MaxSpell);
  50.                   Spell := MaxSpell;
  51.                 end;
  52.      end;
  53.    end;
  54.  
  55.   With Character do     { display Character info }
  56.     begin
  57.       { fixed Variables }
  58.       Writeln;
  59.       Writeln('*** Your Character:');
  60.       Writeln('    Name: ', Name);
  61.       Writeln('  Health: ', Health,'/',MaxHealth);
  62.       { Variant Variables }
  63.       Case Char of
  64.         Warrior: Writeln('     Hit: ', DamagetoHit);
  65.         Wizard:  Writeln('   Spell: ', Spell, '/', MaxSpell);
  66.       end;
  67.     end;
  68. end.
  69.